package com.one.shopping;

import android.app.Application;
import android.content.Context;
import android.content.Intent;

import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.one.shopping.entity.Users;
import com.one.shopping.ui.activity.LoginActivity;

/**
 * @author 柯尊诚
 * @version 1.0
 * @date 创建时间：2016/1/12 20:36
 */
public class AppContext extends Application{

    private Users users;
    private boolean login = false;
    private static AppContext appContext;

    public static AppContext getInstance() {
        return appContext;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        initImageLoader();
        appContext = this;
    }

    private void initImageLoader() {
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片
                .showImageOnFail(R.drawable.mini_avatar)// 设置图片加载或解码过程中发生错误显示的图片
                .cacheInMemory(true)// 设置下载的图片是否缓存在内存中
                .cacheOnDisk(true)// 设置下载的图片是否缓存在SD卡中
                .displayer(new RoundedBitmapDisplayer(20))// 设置成圆角图片
                .build();// 创建配置过得DisplayImageOption对象
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(this)
                .memoryCacheExtraOptions(400,400)
                .memoryCache(new LruMemoryCache(2 * 1024 * 1024))
                .memoryCacheSize(2 * 1024 * 1024)
                .memoryCacheSizePercentage(13)
                .defaultDisplayImageOptions(options)
                .build();
        ImageLoader.getInstance().init(config);

    }

    public Users getLoginInfo() {
        if (users == null) {
            return null;
        }
        return users;
    }

    /**
     * 保存用户信息
     */
    public void saveLoginInfo(Users users) {
        if (null == users) {
            return;
        }
        this.users = users;
        this.login = true;

    }

    /**
     * 清除登录信息
     */
    public void cleanLoginInfo() {
        this.users = new Users();
        this.login = false;
    }

    /**
     * 用户是否登录
     * @return
     */
    public boolean isLogin() {
        return login;
    }


    /**
     * 显示登录的界面
     *
     * @param context
     */
    public static void showLoginActivity(Context context) {
        Intent intent = new Intent(context, LoginActivity.class);
        context.startActivity(intent);
    }

}
